Skip to main content

Loading of Available Games

The casino provider must make available a feed (as a simple JSON file) or an endpoint that returns a list of available games via an HTTP(S) GET request.

You provide the URL; we append GET parameters to this URL and expect a JSON response containing the game list. We call this endpoint automatically once per day to synchronize your game catalog, adding new games and removing games that are no longer present in your response.

We include an Authorization header with each request (validating this header on your side is optional). The algorithm for generating the signature is described in the Signature (Authorization) section below.


Request

Method and URL

GET {loadGamesUrl}

{loadGamesUrl} is your base URL (e.g. https://api.provider.com/games, https://api.provider.com/games.json, https://api.provider.com/games.php?action=load_games, etc.).

Query Parameters

We add these parameters to the URL automatically:

ParameterDescriptionMandatoryType
tsCurrent Unix timestamp+int
casinoIdCasino operator ID (if you need to identify the operator)-string

Example final request URLs:

https://api.provider.com/games?ts=1709740800&casinoId=12345
https://api.provider.com/games.json?ts=1709740800
https://api.provider.com/games.php?action=load_games&ts=1709740800&casinoId=12345

Headers

HeaderValueDescription
AuthorizationsignatureRequest signature (see below)
Content-Typeapplication/jsonContent type

Response Format

The provider must respond with a JSON array of game objects.

Game Object Schema

FieldDescriptionMandatoryType
nameGame title+string
gameIdCasino game ID+string
platformSupported game platforms (currently only desktop and mobile values are supported)+array
languagesSupported game languages as two-letter codes based on the ISO 639-1 standard (for example, en for English)-array
categoryGame categories (see the list of allowed values below)+array
imageGame image thumbnail URL+string
hasFreespinsFree spins support for the game-bool
hasDemoDemo (fun) mode support-bool

Example Response

[
{
"name": "Golden Jack",
"gameId": "game_0121",
"platform": ["desktop", "mobile"],
"languages": ["en", "ru"],
"category": ["slots"],
"image": "https://test_domain.org/images/golden-jack.png",
"hasFreespins": true,
"hasDemo": false
},
{
"name": "Mystic Fortune",
"gameId": "game_0453",
"platform": ["desktop", "mobile"],
"languages": ["en", "de"],
"category": ["slots"],
"image": "https://test_domain.org/images/mystic-fortune.png",
"hasFreespins": false,
"hasDemo": true
},
... // more games
]

Allowed Game Categories

The category field is an array of strings. The allowed values are:

  • roulette
  • slots
  • card
  • poker
  • casual
  • video_poker
  • lottery
  • fantasy_sport
  • live_dealer
  • blackjack
  • sports_betting
  • backgammon
  • arcade
  • bingo
  • keno
  • dices
  • crash
  • fishing

Signature (Authorization)

  1. Take the query string of the final URL (everything after ?), e.g. ts=1709740800&casinoId=12345. Use the query string exactly as in the request URL; parameter order and encoding must not be changed.
  2. Concatenate with the secret key from config: queryString + secretKey.
  3. Compute SHA-256 of the resulting string; output as hex (64 characters, lowercase).
  4. Send the result in the Authorization header.

Formula:

sign = hex(SHA256(queryString + secretKey))
Authorization: <sign>

Example: for queryString = "ts=1709740800&casinoId=12345" and secretKey = "mysecret", the signature is the SHA-256 hash in hex of the string ts=1709740800&casinoId=12345mysecret.

PHP:

hash('sha256', $queryString . $secretKey)

JavaScript (Node.js):

const crypto = require('crypto');
const signature = crypto.createHash('sha256').update(queryString + secretKey).digest('hex');

Python:

import hashlib
signature = hashlib.sha256((query_string + secret_key).encode()).hexdigest()